package com.zwy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zwy.domain.dto.UserRegisterDTO;
import com.zwy.domain.dto.UserResetConfirmDTO;
import com.zwy.domain.dto.UserSearchDTO;
import com.zwy.domain.dto.UserUpdateDTO;
import com.zwy.domain.entity.User;
import com.zwy.domain.response.ResponseResult;
import com.zwy.domain.vo.UserAccountVO;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.web.multipart.MultipartFile;
import org.thymeleaf.model.ICDATASection;

import java.util.List;

/**
 * @author zwy
 * @version 1.0
 * @description: UserService
 * @date 2025/9/18 16:04
 */
public interface UserService extends IService<User>, UserDetailsService {
    /**
     * 根据用户名或者密码查询用户
     *
     * @param text 用户名或者邮箱
     * @return 用户信息
     */
    User findAccountByNameOrEmail(String text);
    /**
     * 用户登录状态
     * @param id 用户id
     * @param type 登录类型
     */
    void userLoginStatus(Long id, Integer type);
    /**
     * 根据用户id查询用户信息
     *
     * @param id 用户id
     * @return 用户信息
     */
    UserAccountVO findAccountById(Long id);
    /**
     * 用户注册
     * @param userRegisterDTO 参数
     * @return 是否成功
     */
    ResponseResult<Void> userRegister(UserRegisterDTO userRegisterDTO);

}
